<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
  <script src="https://lf3-cdn-tos.bytecdntp.com/cdn/expire-1-M/vue/2.6.14/vue.js" type="application/javascript"></script>
</head>
<body>
  <div id="app">
    <hello></hello>
    <world></world>
  </div>
</body>
<script>
  // 给每一个组件添加方法
  // 使用mixin混入的方法
  //全局混入
  Vue.mixin({
    created(){
       console.log('公共的混入的created');
    },
    data(){
        return{
        username:'张三',
        age:'20'
      }
    },
    methods: {
      say(){
        alert('你好,世界')
      }
    }
  })
  // 组件1
  Vue.component('hello',{
    //局部混入
    mixins: [obj={
      data(){
        return {
          sex:0
        }
      }
    }],
    data(){
      return{
        //同名的数据,会覆盖混入的 用的是自己的
        username:'李四',
      }
    },
    template:`
    <div>hello-{{username}}--{{age}}--{{sex}}<button @click="say">say</button></div>
    `
  })
  //组件2
  Vue.component('world',{
    template:`
    <div>world--{{username}}--{{age}}<button @click="say">say</button></div>
    `,
    created(){
        //混入钩子函数依旧会执行,没有覆盖
        console.log('world的created');
    }
  })
  let vm = new Vue({
    el: '#app'
  })
</script>
</html>
